package AnunciosMVC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class ListAnuncios {

    public ArrayList<Anuncio> anuncios = new ArrayList<Anuncio>();

    /**
     * Obtiene todos los anuncios de la BD
     *
     * @return n�mero de anuncios del arraylist
     */
    public int getAnuncios() {
        // JDBC driver name and database URL
        final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        final String DB_URL = "jdbc:mysql://localhost/java";

        //  Database credentials
        final String USER = "root";
        final String PASS = "";

        //Creamos las referencias de conexiones
        Statement stmt = null;
        ResultSet rs = null;
        Connection conn = null;
        
        int cont = 0;

        try {
            // Register JDBC driver
            Class.forName(JDBC_DRIVER);

            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            stmt = conn.createStatement();

            String sql = "SELECT * from anuncios";

            rs = stmt.executeQuery(sql);
           
            //Borramos todos los elementos del arraylist antes de insertar los nuevos
            anuncios.clear();
            //Recorremos el ResulSet creando objetos anuncio y a�adiendolos al arraylist
            Anuncio anuncio;
            while (rs.next()) {
                anuncio = new Anuncio();
                anuncio.setId(rs.getInt("id"));
                anuncio.setTitulo(rs.getString("titulo"));
                anuncio.setTexto(rs.getString("texto"));
                anuncio.setPrecio(rs.getFloat("precio"));
                anuncio.setVendido(rs.getBoolean("vendido"));
                anuncios.add(anuncio);
                cont++;
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return cont;
    }
}
